var _ = require("lodash");
// _.clone(value)
// 创建一个 value 的浅拷贝

const originalObject = {
  name: "John",
  age: 30,
  address: {
    city: "New York",
    country: "USA",
  },
};

// 浅拷贝的特点是他只会复制对象或者数据的第一层属性或者元素
// 对于深一层级的数据，它采用的是引用，也就是说，如果使用浅拷贝
// 复制了一个数据，它的第一层属性是自己的，第二层或更深的属性
// 他还是引用的原数据的值,所以如果修改新复制的数据的第二层,原数据
// 也会跟着改变，解决这个问题可以使用深拷贝
const shallowCopy = _.clone(originalObject);
console.log("Shallow Copy:", shallowCopy);
shallowCopy.name = "Jane";
shallowCopy.address.city = "Los Angeles";

console.log("Original Object:", originalObject);
console.log("Shallow Copy:", shallowCopy);
